/**
 * 
 */
package com.yidu.drug.action;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.google.gson.Gson;
import com.yidu.drug.common.Message;
import com.yidu.drug.model.AuditModel;
import com.yidu.drug.model.FinancialSheetsModel;
import com.yidu.drug.model.PurchaseOrderModel;
import com.yidu.drug.service.AuditService;
import com.yidu.drug.service.FinancialSheetsService;
import com.yidu.drug.service.PurchaseOrderService;

/**
 * 总店采购订单表Action
 * @author 王志伟
 * @date 2018年8月9日 下午8:04:16
 * @version 1.0
 */
@Controller
@RequestMapping("purchaseOrder")
public class PurchaseOrderAction {
	//采购订单的Service
	@Resource
	private PurchaseOrderService poService;
	
	//总店财务Service
	@Resource
	private FinancialSheetsService fsService;
	
	//审核记录Service
	@Resource
	private AuditService auService;
	//消息类
	Message m=new Message();
	
	/**
	 * 查询所有的采购订单的方法
	 * @param limit 行数
	 * @param page 页数
	 * @param conId 合同ID
	 * @param poState 状态
	 * @return
	 */
	@RequestMapping("/findAll")
	@ResponseBody
	public Map<String, Object> findAll(String limit, String page,String conId,String poState){
		//得到查询的数据返回
		return poService.findAll(limit,page,conId,poState);
	}
	
	/**
	 * 修改采购状态的方法
	 * @param poId 采购订单ID
	 * @param poSumprice 采购订单的总价格
	 * @return 消息类
	 */
	@RequestMapping("/updateCgzt")
	@ResponseBody
	public Message updateCgzt(String poId,String poSumprice){
		//得到修改采购状态的行数存入消息类并返回
		int count =poService.updateCgzt(poId,poSumprice);
		m.setNum(count);
		return m;
	}
	
	/**
	 * 删除的方法
	 * @param poId 采购订单的Id
	 * @return 消息类
	 */
	@RequestMapping("/delete")
	@ResponseBody
	public Message delete(String poId){
		//得到删除的行数存入消息类并返回
		int count=poService.deleteByPrimaryKey(poId);
		m.setNum(count);
		return m;
	}
	
	/**
	 * 根据采购订单Id查询
	 * @param poId 采购订单ID
	 * @return 采购订单对象
	 */
	@RequestMapping("/findById")
	@ResponseBody
	public PurchaseOrderModel findById(String poId){
		//采购订单对象
		PurchaseOrderModel po=new PurchaseOrderModel();
		/*
		 * 如果采购订单ID不为null,对象等于根据采购订单ID查询的 在返回对象
		 */
		if(!poId.equals("null")){
			po=poService.selectByPrimaryKey(poId);
		}
		return po;
	}
	
	/**
	 * 审核操作
	 * @param poId 订单ID
	 * @return 修改的行数
	 */
	@RequestMapping("/updateShzt")
	public String updateShzt(AuditModel aud){
		System.out.println("财务审核+qwId"+aud.getQwId()+aud.getAuditPass());
		int count=poService.updateShzt(aud);
		if(count>0){
			return "redirect:../pages/wzw/purchase/cwshPurchaseOrder.html";
		}else{
			return "redirect:../pages/wzw/purchase/cwshPurchaseOrder.html";
		}
	}
	
	/**
	 * 提交操作
	 * @param poId 订单ID 
	 * @return 修改的行数
	 */
	@RequestMapping("/updateTjzt")
	@ResponseBody
	public Message updateTjzt(String poId ,String poSumnum){
		int count=poService.updateTjzt(poId ,poSumnum);
		m.setNum(count);
		return m;
	}
	
	/**
	 * 判断财务金额
	 * @param poSumprice 采购总金额
	 * @return count 
	 */
	@RequestMapping("/cwPrice")
	@ResponseBody
	public Message cwPrice(String poSumprice){
		int count=0;
		FinancialSheetsModel fs=fsService.selectByFilId("1");
		double price=Double.valueOf(poSumprice);
		double s=fs.getFsPrice().doubleValue();
		if(s<price){
			count=-1;
		}else{
			count=1;
		}
		m.setNum(count);
		return m;
	}
	
	/**
	 * 根据qwID查询所有审核记录
	 * @param qwId 
	 * @return list
	 */
	@RequestMapping("/findByQwId")
	@ResponseBody
	public Map<String, Object> findByQwId(String qwId){
		List<AuditModel> list=auService.findQwId(qwId);
		for (AuditModel auditModel : list) {
			auditModel.setQwId("材料采购订单");
		}
		Map<String,Object> map = new HashMap<String, Object>();
		map.put("code",0);
		map.put("msg","");
		map.put("count",1);
		map.put("data", list);
		System.out.println("==="+new Gson().toJson(list));
		return map;
	}
}
